home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs07.d81
/
stripper.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
3KB
|
72 lines
5 POKE56,31:CLR:GOTO2010
10 Z$=CHR$(.):PRINT"[147]"
11 PRINT"ENTER DISK DRIVE DEVICE NUMBER."
12 PRINT"(ENTER 0 TO EXIT.)"
13 PRINT:PRINT" 8[145]":INPUTD:IFD=0THENEND
14 IFD-8AND252THENPRINT"ILLEGAL DEVICE NUMBER":GOTO11
15 POKE2,35:POKE184,8:POKE185,8:POKE186,D
16 POKE183,1:POKE187,2:POKE188,.:SYS65472
17 IFPEEK(783)AND1THENCLOSE8:PRINT"[147]?DEVICE";D;"NOT PRESENT":GOTO11
18 CLOSE8
20 OPEN8,8,0,"$"
22 PRINT"[147]LOADING DIRECTORY..."
23 SYS49152:IFPEEK(2)THEN25
24 PRINT"NO FILES ON DISK":GOTO11
25 PRINT"[147]ENTER PETASCII VALUE OF CHARACTERS TO"
26 PRINT"BE STRIPPED FROM END OF FILE."
27 PRINT"PRECEDE VALUE WITH $ FOR HEX ENTRY."
28 PRINT"PRESS RETURN FOR CONTROL Z (26 OR $1A)."
29 A$="":PRINT:INPUTA$:IFA$=""THENA$="26"
31 GOSUB400:IFFTHEN29
32 PRINT"[147]ONE MOMENT PLEASE..."
35 POKE2,A:OPEN15,D,15
40 GOSUB500:CLOSE8:OPEN8,D,8,"#":PRINT#15,"U1";8;0;18;S
45 PRINT#15,"B-P";8;P+1
47 GET#8,A$:POKE155,ASC(A$+Z$)
50 GET#8,A$:POKE156,ASC(A$+Z$)
51 PRINT#15,"B-P";8;P+28
52 GET#8,A$:L=ASC(A$+Z$)
55 GET#8,A$:H=ASC(A$+Z$)
57 PRINT"STRIPPING CHARACTERS [CHR$(";MID$(STR$(A),2);")]..."
60 POKE143,2:SYS49524
62 IFL=PEEK(251)ANDH=PEEK(252)THEN91
65 PRINT#15,"U1";8;0;18;S
70 PRINT#15,"B-P";8;P+28
75 PRINT#8,CHR$(PEEK(251));
80 PRINT#8,CHR$(PEEK(252));
85 PRINT#15,"U2";8;0;18;S
90 PRINT"VALIDATING (FEWER BLOCKS)...":PRINT#15,"V0:"
91 CLOSE8:CLOSE15
92 Q$=CHR$(34):PRINT"[147][157]";PEEK(253)+256*PEEK(254);"CHARACTERS WERE REMOVED."
94 PRINT"AFTER 1000 CHARACTERS ARE REMOVED, THE"
95 PRINT"DISK DRIVE SHOULD BE CLEANED WITH A"
96 PRINT"FINE CAMEL'S HAIR BRUSH. THAT WILL"
97 PRINT"REDUCE THE RISK OF ";Q$;"BYTE BUILD-UP";Q$;","
98 PRINT"A MAJOR CAUSE OF DRIVE FAILURE."
99 GOTO11
400 M=256:F=.:N=.:A=.:IFASC(A$)=36THEN415
405 A=VAL(A$):IFA<.ORA>255THEN445
410 RETURN
415 B=ASC(RIGHT$(A$,N+1))AND127:IFB>70THEN445
420 IFB=36THEN440
425 RESTORE:B=B-47:FORI=.TOB:READY:NEXT
430 IFY<0THEN445
435 A=A+Y*16^N:N=N+1:GOTO415
440 IFA<MTHENRETURN
445 PRINT"ILLEGAL ENTRY":F=1:RETURN
490 DATA-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1
495 DATA-1,-1,-1,-1,10,11,12,13,14,15
500 PRINT#15,"M-R";CHR$(144);CHR$(2);CHR$(5)
510 GET#15,A$:S=ASC(A$+Z$):GET#15,A$:GET#15,A$
520 GET#15,A$:GET#15,A$:P=ASC(A$+Z$)
530 RETURN
600 INPUT#15,A,B$,C,E
610 F=.:IFA>19THENPRINT"[147]";A:PRINTB$:PRINTC,E:F=1
620 RETURN
2010 PRINT"[147]ONE MOMENT PLEASE..."
2020 P=PEEK(45)+256*PEEK(46)-1
2030 IFPEEK(P)THENP=P-1:GOTO2030
2040 P=P-790:S=49152
2050 FORI=.TO790:POKES+I,PEEK(P+I):NEXT
2060 POKE2063,48:GOTO10